import axios from 'axios';
import { Toast } from 'antd-mobile';

// axios在接口函数index中使用就可以了
// 生成一个实例Axios。以下都是再给Axios添加东西（请求拦截，响应拦截，等属性），最后把Axios实例导出去
let opt={}
// 判断开发环境的
console.log(process.env.NODE_ENV)
if(process.env.NODE_ENV == 'development'){
  opt={
    // baseURL用的是cnode的前缀地址
    baseURL: 'https://cnodejs.org/api/v1',
    timeout: 3000,
  }
}else if(process.env.NODE_ENV == 'production'){
  opt={
    // baseURL用的是cnode的前缀地址
    baseURL: 'https://baidu.com',
    timeout: 3000,
  }
}

let Axios = axios.create(opt);

// 添加请求拦截器
Axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  console.log('请求拦截');
  // localStorage.setItem('userInfo',JSON.stringify('{token:e73b268b-f5d2-4ff1-8fd9-3581b84962e2}'));
  // 拿到的userInfo是一个对象，需要再判断是不是有解析出来的token值，要是没有就是undefined
  const userInfo=localStorage.getItem('userInfo');
  const token=userInfo&&JSON.parse(userInfo).token;
  // 设置带token的请求头，header里面携带过去统一都有了，不用再接口里面写了
  config.headers['Authorization'] = token;
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
Axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么，
  // 先走axios里面的这一步再进到接口函数中执行console（response）
  console.log(response);
  // axios里面return的response是什么，Home里面axios的res就会接收到什么
  if (response.status == 200) {
    return response.data;
  }
}, function (error) {
  // 对响应错误做点什么
  console.log(error)
  Toast.show({
    icon: 'fail',
    content: error.response.data.error_msg,
  })
  return Promise.reject(error);
});


export default Axios;
